# -*- coding: utf-8 -*-
# @Time     : 2021/11/25 22:01
# @Author   : Aries
# @File     : 无参装饰器.py
# @Describe : 无参装饰器
# @Software : PyCharm

import time

def decorator(func):

    def inner(*args, **kwargs):
        print(f"不定长位置参数：{args}")
        print(f"不定长关键字参数：{kwargs}")
        start = time.perf_counter()
        result = func(*args, **kwargs)
        end = time.perf_counter()
        print(f"函数运行时间：{end - start}s")
        return result
    return inner

@decorator
def test():
    '''
    被修饰的函数不带参数且无返回值
    :return:
    '''
    print("被修饰的函数不带参数且无返回值！！！")

@decorator
def func(a, b, c=10, d=20):
    '''
    被修饰的函数带参数
    :param a: 位置参数
    :param b: 位置参数
    :param c: 关键字参数
    :param d: 关键字参数
    :return:
    '''

    print("被修饰的函数带参数")
    print(f"位置参数：{a}  {b}")
    print(f"关键字参数：{c}  {d}")

@decorator
def bar(a, c=9):

    print("被修饰的函数带参数且有返回值")
    return a + c

if __name__ == '__main__':
    test()
    print("=" * 50)
    func(5, "李白", c=90, d=100)
    print("=" * 50)
    func(5, "李白")
    print("=" * 50)
    print(bar(100))
